package com.ls.lserp.modules.job.web;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.ls.lserp.common.dynamicsource.DataSourceContextHolder;
import com.ls.lserp.common.utils.DateUtils;
import com.ls.lserp.common.utils.SpringContextHolder;
import com.ls.lserp.common.web.BaseController;
import com.ls.lserp.dbaccess.Entity.ContractCustomEntity;
import com.ls.lserp.modules.job.service.MUOrderSyncService;

/**
 * @ClassName : MTMtoERPDataBaseSyncJob
 * @Description : 平台数据与ERP同步
 *
 * @author : shaoyun.tan
 * @date : 2017年9月21日
 */
public class MUOrderDataSyncJob extends BaseController {

	// 平台与ERP数据同步(订单相关数据)
	@Autowired
	private MUOrderSyncService muOrderSyncService = SpringContextHolder.getBean(MUOrderSyncService.class);

	/**
	 * @Title : dataBaseSync
	 * @Description : 平台数据与ERP同步
	 * @return : void
	 *
	 * @author : shaoyun.tan
	 * @throws Exception
	 * @date : 2017年9月21日
	 */
	public void dataBaseSync() {
		try {
			// 获取开始日期时间
			String nowDateTime = DateUtils.getDateTime();

			logger.info("--------------------" + nowDateTime + "MTM荷兰订单同步 [" + this.getClass().getName()
					+ "] 开始------------------------");

			// 切换ERP数据库，导入订单数据
			DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_ZYSQL);
			// 获取合同数据
			List<ContractCustomEntity> contractCustomList = muOrderSyncService.findContractData();
			// 获取同步数据
			Map<String, Object> dataMap = muOrderSyncService.getSyncData(contractCustomList);
			// 切换ERP数据库，导入订单数据
			DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_MTMSQL);
			// 导入数据
			muOrderSyncService.insertData(dataMap);
			// 切换ERP数据库
			DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_ZYSQL);
			// 更新同步状态
			// erpOrderSyncService.updateSyncStatus(contractCustomList);

			nowDateTime = DateUtils.getDateTime();

			logger.info("--------------------" + nowDateTime + "MTM荷兰订单同步 [" + this.getClass().getName()
					+ "] 结束------------------------");
		} catch (Exception e) {
			// 打印日志
			logger.error(e.getMessage(), e);
		}

	}

}
